﻿///////////////////////////////////////////////////
////文件名:Asynchronous
////描  述:
////创建者:刘凡平(Iveely Liu)
////邮  箱:945222889@qq.com
////组  织:Iveely
////年  份:2012/5/20 15:42:08
/////////////////////////////////////////////////


//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Net;
//using System.Runtime.Serialization.Formatters.Binary;
//using System.Net.Sockets;

//namespace IveelySE.BigData.Common.Communication
//{
//    public class Asynchronous
//    {
//        /// <summary>
//        /// IP地址
//        /// </summary>
//        public static IPAddress IP { get; set; }
//        /// <summary>
//        /// 端口号
//        /// </summary>
//        public static int Port { get; set; }

//        /// <summary>
//        /// 客户端获取对象
//        /// </summary>
//        /// <returns></returns>
//        public static object Client()
//        {
//            //设定TCP监听客户端
//            TcpClient client = new TcpClient();
//            //连接到指定
//            client.Connect(IP, Port);
//            //获取网络流
//            NetworkStream netStream = client.GetStream();
//            //将网络流格式化为对象
//            Object obj = new BinaryFormatter().Deserialize(netStream);
//            //返回接收到的对象
//            return obj;
//        }

//        /// <summary>
//        /// 服务端发送对象
//        /// </summary>
//        public static void Server()
//        {
//            //TCP 监听器
//            TcpListener tcpListener =new  TcpListener(IP, Port);
//            //启动监听
//            tcpListener.Start();
//            //尝试异步连接
//            System.IAsyncResult ia2 = tcpListener.BeginAcceptTcpClient(delegate(System.IAsyncResult ia)
//            {
//                System.Net.Sockets.TcpListener tl2 = ia.AsyncState as System.Net.Sockets.TcpListener;
//                System.Net.Sockets.TcpClient tc2 = tl2.EndAcceptTcpClient(ia);
//                GetClient(tc2);
//            },
//            tl
//            );
//            System.Console.ReadLine();
//        }

//        public static void GetClient(System.Net.Sockets.TcpClient tc, Object obj)
//        {
//            System.Net.Sockets.NetworkStream ns = tc.GetStream();

//            System.IO.MemoryStream ms = new System.IO.MemoryStream();
//            BinaryFormatter bf = new BinaryFormatter();
//            bf.Serialize(ms, obj);
//            byte[] bt = ms.GetBuffer();
//            ns.BeginWrite(bt, 0, bt.Length, delegate(System.IAsyncResult ia)
//            {
//                System.Net.Sockets.NetworkStream ns2 = ia.AsyncState as System.Net.Sockets.NetworkStream;
//                ns2.EndRead(ia);
//            },
//            ns
//            );

//        }
//    }
//}
